Traditional cryptography refers to the practice of obscuring information to prevent unauthorized access. Modern cryptography generally makes use of mathematical ciphers and other techniques to ensure that only authorized users are able to access encrypted data. Cryptographic techniques have also been used to verify the identities of people, software or other entities. So-called “digital signatures”, for example, commonly use cryptographic techniques to verify that a person or entity “signing” an electronic message is in fact the party that it claims to be. Cryptography is commonly used in electronic commerce, both for identifying parties to transactions and for ensuring that confidential data (e.g., credit card numbers) are not exposed to unauthorized parties. Cryptography is also widely used in many other commercial, military and personal settings to authenticate parties to electronic communications and/or to preserve the confidentiality of communications.
In recent years, cryptographic techniques have become more and more advanced, both in terms of the mathematics involved and the computing resources used to process such algorithms. The Galois Counter Mode (GCM) technique, for example, is one example of a block cipher system that provides both confidentiality and data origin authentication. Typically, the authenticated encryption operation of GCM receives four inputs corresponding to a secret key, an initialization vector (IV), a plaintext, and additional authenticated data (AAD). The GCM system conventionally provides two outputs: a ciphertext message that corresponds to the encrypted plaintext, as well as an authentication tag that can be used to verify the identity of the sender and/or to ensure that the integrity of the decrypted ciphertext. The authentication tag is conventionally computed according to a well-known digest technique known as “GHASH”, which is generally considered to be relatively computationally demanding. As a result, the data processing resources used to compute conventional GHASH digests in the time frames generally requested for electronic communications can be significant; these computational demands are often met with hardware that can be relatively expensive and/or that can consume an undesirable amount of power. Many other types of block cipher systems and other cryptographic techniques other than GCM are similarly deployed in many different computing environments, and many of these techniques can similarly demand significant processing resources to provide computed results in the requested timeframes.
As a result, it is desirable to create systems and techniques for efficiently creating digests of block cipher or other digital data. Other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background of the invention.